package com.ccc.boot.system.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ccc.boot.base.BaseDO;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotNull;
import java.time.LocalDate;

/**
 * 人员表
 *
 * @author superC
 * @date 2022/3/23
 * @version 0.1.0
 */

@Data
@EqualsAndHashCode(callSuper = true) // 比较父类属性
@Accessors(chain = true) // 链式编程
@TableName("sys_user")
public class SysUser extends BaseDO {

    private static final long serialVersionUID = -8295483149039301194L;

    /**
     * 人员ID
     */
    private String code;

    /**
     * 用户名(系统登录名)
     */
    @NotNull(message = "用户名不能为空")
    private String username;

    /**
     * 人员姓名(用户真实名称)
     */
    @TableField(value = "real_name")
    private String realName;

    /**
     * 密码, 查询时不返回该字段
     */
    @TableField(value = "password", select = false)
    private String password;

    /**
     * 用户个人头像文件ID
     */
    @TableField(value = "photo_id")
    private Long photoId;

    /**
     * 所属部门
     */
    @TableField(value = "dept_id")
    private Long deptId;

    /**
     * 性别(1:男 2:女)
     */
    private Integer gender;

    /**
     * 类型(1:在编 2:借调)
     */
    private Integer type;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 邮箱
     */
    private String email;

    /**
     * 年龄
     */
    private String age;

    /**
     * 生日
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthday;

    /**
     * 状态(1:正常 2:停用)
     */
    private Integer status;

    /**
     * 地址
     */
    private String address;

    /**
     * 备注说明
     */
    private String memo;

}